#pragma once
#include "DXAMLCommon.h"
#include "IPALRegion.h"


class IPALMathServices
{
public:
	virtual XINT64        MathFloor(long double rNum) = 0;
	virtual XINT32        MathFloorF( XFLOAT rNum) = 0;
	virtual XINT64        MathCeiling(long double rNum) = 0;
	virtual XINT32        MathCeilingF( XFLOAT rNum) = 0;
	virtual XINT32        MathIsFiniteF( XFLOAT rNum) = 0;
	virtual XINT32        MathIsNanF( XFLOAT rNum) = 0;
	virtual XDOUBLE       MathSqrt( long double rNum) = 0;
	virtual XFLOAT        MathSqrtF( XFLOAT rNum) = 0;
	virtual XDOUBLE       MathLogarithm( long double eValue) = 0;
	virtual XDOUBLE       MathExponent( long double ePower) = 0;
	virtual XFLOAT        MathPower( XFLOAT eBase, XFLOAT ePower) = 0;
	virtual XFLOAT        MathCos( XFLOAT eRadians) = 0;
	virtual XFLOAT        MathSin( XFLOAT eRadians) = 0;
	virtual XFLOAT        MathArcTan2( XFLOAT y, XFLOAT x) = 0;
	virtual XFLOAT        MathCosDegrees( XFLOAT eDegrees) = 0;
	virtual XFLOAT        MathSinDegrees( XFLOAT eDegrees) = 0;
	virtual XFLOAT        MathTanDegrees( XFLOAT eDegrees) = 0;
	virtual XFLOAT        MathLogarithm10( XFLOAT eValue) = 0;
	virtual XFLOAT        MathArcTan( XFLOAT eRadians) = 0;
	virtual XINT32        MathRand() = 0;
	virtual HRESULT       CreateRegion( IPALRegion **ppRegion) = 0;

};